using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidad;
using Dao;
using System.IO;

public partial class InscripcionACursar : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Usuario u = Session["login"] as Usuario;
            if (u.tipoUsuario != "Alumno")
                Response.Redirect("~/Login.aspx");
        }
    }
    protected void Page_PreRenderComplete(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Usuario u = Session["login"] as Usuario;
            listAsignatura.DataSource = InscripXAlumnoDao.ObtenerAsignaturas(u.codCarrera);
            listAsignatura.DataTextField = "nombreMateria";
            listAsignatura.DataValueField = "codAsignatura";
            listAsignatura.DataBind();
            listAsignatura.Items.Insert(0, "Seleccione una");
            btnGrabar.Visible = false;
        }
    }
    protected void btnGrabar_Click(object sender, EventArgs e)
    {
        if (!IsValid) return;
        try
        {
            InscripXAlumnoDao.Insertar(Inscripciones);
            Inscripciones.Clear();
            gvAsignatura.DataSource = Inscripciones;
            gvAsignatura.DataBind();
            ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "keyhere", "alert('Te inscribiste con exito a la/s materia/s.');", true);
            btnGrabar.Visible = false;
        }
        catch (ApplicationException ex)
        {
            ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "keyhere", "alert('Eror al cargar las Inscripciones, debido a: \n " + ex.Message + "');", true);
        }
    }
    protected void cvValidarCapacidad_ServerValidate(object source, ServerValidateEventArgs args)
    {
        args.IsValid = InscripXAlumnoDao.ValidarCapacidad(int.Parse(listAsignatura.SelectedValue));
    }

    protected void btnAgregar_Click(object sender, EventArgs e)
    {
        if (!IsValid) return;
        Usuario u = Session["login"] as Usuario;
        InscripcionXAlumno insXalu = new InscripcionXAlumno();
        insXalu.codAsignatura = int.Parse(listAsignatura.SelectedValue);
        insXalu.legajo = u.legajo;
        insXalu.fecha = DateTime.Now;
        insXalu.codEstado = 1;
        insXalu.nomAsignatura = listAsignatura.SelectedItem.ToString();
        Inscripciones.Add(insXalu);
        listAsignatura.Items.RemoveAt(listAsignatura.SelectedIndex);
        listAsignatura.SelectedIndex = 0;
        CargarInscripciones();
        btnGrabar.Visible = true;
    }
    private void CargarInscripciones()
    {
        gvAsignatura.DataSource = Inscripciones;
        gvAsignatura.DataKeyNames = new string[] { "codInscripcion" };
        gvAsignatura.DataBind();
    }

    public List<InscripcionXAlumno> Inscripciones
    {
        get
        {
            if (Session["Inscripciones"] == null)
            {
                Session["Inscripciones"] = new List<InscripcionXAlumno>();
            }
            return (List<InscripcionXAlumno>)Session["Inscripciones"];
        }
        set
        {
            Session["Inscripciones"] = value;
        }
    }
    protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
            Usuario u = Session["login"] as Usuario;
            args.IsValid = InscripXAlumnoDao.ValidarInscripcion(int.Parse(listAsignatura.SelectedValue), u.legajo );
            
    }

}